An important challenge in managing deployments of computing resources in a computing system or network that is faced with variable workload traffic is the ability to estimate or anticipate future workload. Effective workload prediction would enable a management system (either automated or manual) to allocate appropriate computing resources to meet a workload level increase or, conversely, reduce resource under-utilization in the event of a decreasing workload level.
An existing approach is to use standard seasonal forecasting tools (e.g., seasonal Box-Jenkins models) to forecast anticipated workload over a future time horizon that is characteristic of the underlying time scales or periodicity (e.g., daily, weekly, monthly, etc.) of the historical data.
Significant effort has been channeled towards making these long term forecasts increasingly accurate. Several factors contribute to the accuracy of long term forecasting, including use of extensive historical data (spanning several of the major characteristic cycles, e.g., day, week, month, etc.) and a reasonable time interval (e.g., hour) between successive data points. Each data point is typically an average of workload measurements (e.g., expressed as a queue length or transaction rate) over the time interval. Workload data from computing environments that are described in this manner (e.g., averaged over hour interval) with sufficient history (e.g., days to weeks of data) are amenable to forecasting methods since they are not excessively noisy and have appropriate characteristics (e.g., stationarity, auto correlation over the long term time scales of interest).
However, workload data at much shorter time intervals (e.g., seconds, minutes) can be characterized by significant variability with busy periods interspersed with idle periods that are typically not correlated with each other. Nonetheless, it is important to be able to track the variability of the workload over these short intervals, and be able to react to them (e.g., by rapid provisioning of resources) since they can have deleterious impact on a service objective (e.g., response time) or even cause service outage if sufficient resources are not in place to accommodate the variability.
Unfortunately, existing long term forecasting approaches are not effective in providing workload prediction on such short time scales. There are several reasons for this deficiency including, for example, the relative inability of long term forecasters to adapt quickly to track an unanticipated busy period and, conversely, the tendency to falsely expect a busy period in the future after experiencing several busy periods in its history.
Accordingly, it would be desirable to have adaptive and robust techniques for predicting workload levels in accordance with short term time scales, alone or in association with long term time scales, wherein the prediction results may be used, by way of example, to manage deployment of computing resources associated with a computing system or network in the presence of variable workload.